//////////////////////////////////////////////////////////////////////////

#ifndef _SERVERINFOPACKET_H_
#define _SERVERINFOPACKET_H_

//////////////////////////////////////////////////////////////////////////

#ifndef _PACKET_H_
#include "packet.h"
#endif

#ifndef _SERVERINFO_H_
#include "serverinfo.h"
#endif

//////////////////////////////////////////////////////////////////////////


/** Network packet, that contains server info
*
*  @author   Roman Pasechnik
*  @since    Nov 10th, 2009
*  @updated  Nov 10th, 2009
*/
class ServerInfoPacket : public Packet
{
//////////////////////////////////////////////////////////////////////////

public:

//////////////////////////////////////////////////////////////////////////


    /** Constructor */
    ServerInfoPacket( const ServerInfo& _serverInfo );


////////////////////////////////////////////////////////////////////////////////


    /** Get server info */
    ServerInfo GetServerInfo() const;


////////////////////////////////////////////////////////////////////////////////

private:

//////////////////////////////////////////////////////////////////////////
//// Serializable interface implementation
//////////////////////////////////////////////////////////////////////////


    /** Accept saver, that serializes the object into buffer */
    virtual void AcceptSaver( Saver& _saver ) const;


//////////////////////////////////////////////////////////////////////////


    /** Server info */
    ServerInfo m_ServerInfo;


//////////////////////////////////////////////////////////////////////////
};


//////////////////////////////////////////////////////////////////////////

#endif

//////////////////////////////////////////////////////////////////////////
